Данные из потока можно читать:
HRESULT Read ( void *pv, //указатель на буфер для записи ULONG cb, //количество байтов для чтения ULONG *pcbRead //количество действительно прочитанных байтов );
Ошибок и кодов возврата может быть много. Если все нормально, то S_OK. Пример:
hresult = pIStorage->OpenStream(L"MyFile", NULL,
STGM_READWRITE|STGM_DIRECT|STGM_SHARE_EXCLUSIVE,0, &stream);
if (!FAILED(hresult))
{
cout << "ok open file" << endl;
ULONG cb;
OLECHAR buffer[40];
hresult = stream->Read(&buffer,22 , &cb);
char buf[40];
wcstombs((CHAR*)&buf,(OLECHAR*)&buffer,sizeof(buf));
cout << buf << endl;
}
else cout << "error open file" << endl;
stream->Release();
pIStorage->Release()
Результат - это строка прочитанная из потока: ok open file Hello File Press any key to continue